迭代器
迭代器是一个实现了iter()和next()方法的对象
生成器
yield函数(生成器函数)
生成器函数 Generator Function:实现迭代逻辑的函数
- 任何包含yield语句的函数,都是生成器函数
- 生成器函数是生成器的核心,用来实现迭代逻辑
- 对于函数来说,yield和return功能接近,但不完全相同
1 | def getValue(): |
1 | def getValue( max ): |
1 | def fibo_yield(max): |
生成器与迭代器的联系和区别
- 生成器Generator是快速实现迭代器类型的方式
- 生成器表达式和生成器函数都可以创建一个’generator’对象,这个对象是可迭代的(拥有__iter__()和__next__()方法),所以也叫迭代器。
- 生成器是迭代器的另一个角度诠释,生成器都是迭代器
- 生成器以逐一产生数据为角度,重点在于迭代逻辑的方便实现
- 生成器只需要yield保留字即可定义并表达,不用实现对象的iter和next方法